<?php

namespace app\admin\controller;



use think\Db;
use think\Request;
use Verification\Verification;

class User extends Verification
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $list=Db::name('user')
            ->field(['id','name','tel','status'])
            ->order('id','asc')
            ->select();
        $list1=Db::field(['r.id as rid','position','u.id'])
            ->table(['uj_role'=>'r','uj_user'=>'u', 'uj_user_role'=>'uj'])
            ->where('u.id=uj.uid')
            ->where('r.id=uj.rid')
            ->select();
        foreach ($list as $key => $value){
            $arr=null;
            foreach ($list1 as $k => $v){
                if ($value['id']==$v['id']){
                    $arr[]=$v['position'];
                $list[$key]['have']=$arr;
                }
            }
        }
//    var_dump($list);die;



        return view('con1/tables',[
            'title'=>'用户列表',
            'list'=>$list
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {


        return view('con1/add',['title'=>'添加用户']);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $data= Request::instance()->param();

        $data['regtime']=time();
        if(strlen($data['tel'])!==11){
            return     $this->error('手机号长度不正确');
        }

        $list=Db::name('user')
            ->field(['name','tel','sex','pwd','email','regtime'])
            ->insert($data);
        if(!empty($list)){
            return   $this->success('添加成功','main/index');
        }else{

            return     $this->error('添加失败');
        }


    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {

       $id= Request::instance()->param('id');

        $list=Db::name('user')
            ->field(['*'])
            ->where(['id'=>$id])
            ->select();

        return view('con1/table1',[
            'title'=>$list[0]['name'],
            'list'=>$list
        ]);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {

        $id= Request::instance()->param('id');
//        dump($id);die();
//       显示权限
        $list[]=Db::field(['r.id','position'])
            ->table(['uj_role'=>'r','uj_user'=>'u', 'uj_user_role'=>'uj'])
            ->where('u.id=uj.uid')
            ->where('r.id=uj.rid')
            ->where('u.id',$id)
            ->select();
//        var_dump($list);
//    判断之前有没有权限
        $arr[0]=0;
        if ($list[0]==null){
            $list1=Db::field(['j.id','position'])
                ->table(['uj_role'=>'j'])
                ->select();

        } else{
            foreach ($list[0] as $k=> $v){
                $arr[]=$v['id'];
            }

//            var_dump( $arr);die;

            $list1=Db::field(['id','position'])
                ->table('uj_role')
                ->where('id','not in',$arr)
                ->select();
//            var_dump( $list1);die;
        }


        return view('con1/edit',[
            'title'=>'用户列表',
            'list'=>$list[0],
            'list1'=>$list1,
            'id'=>$id
        ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $data=Request::instance()->param();
        $jid=$data['rid'];
//        var_dump($data);
//       查询  是否已有权限
        $rj=Db::name('user_role')
            ->field(['uid'])
            ->where(['uid'=>$data['id']])
            ->find();
//        已有就删除
        if ($rj !==null){

            $db=Db::name('user_role')
                ->where(['uid'=>$data['id']])
                ->delete();
        }
//                var_dump($jid);die;

//        添加 role_jurisdiction 表
        $lol=' ';
        foreach ($jid as $k => $v){

            $list=Db::name('user_role')
                ->field(['rid','uid'])
                ->insert([
                    'uid'=>$data['id'],
                    'rid'=>$v
                ]);
//        查询所有权限

            $name=Db::name('role')
                ->field(['position'])
                ->where('id',$v)
                ->find();
            $lol .=$name['position'].' ';

        }
//        var_dump($have);die();
//        更改 role 的数据
        $list=Db::name('user')
            ->where(['id'=>$data['id']])
            ->update(['have'=>$lol]);
        if(!empty($list)){
            return   $this->success('添加成功','main/index');
        }else{

            return     $this->error('添加失败');
        }

    }

//    /**
//     *     判断有无权限
//     * @param $x     权限id
//     * @return mixed   查询结果
//     */
//    public function yanzheng($x){
//
//        $name=Cookie::get('name');
//        $has=Cookie::has('name');
//        if(empty($has)){
//            return $this->error('登入失效!请重新登入','admin/index/login');
//        }
//
//        $list=Db::field('*')
//            ->table(['uj_role'=>'r','uj_user'=>'u', 'uj_user_role'=>'ur' ,'uj_role_jurisdiction'=>'rj','uj_jurisdiction'=>'j'])
//            ->where('u.id=ur.uid')
//            ->where('r.id=ur.rid')
//            ->where('r.id=rj.rid')
//            ->where('j.id=rj.jid')
//            ->where('j.id',$x)
//            ->where('u.name',$name)
//            ->find();
//        return $list;
//    }
    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
       echo '删除页面';
    }
}
